package leetCode;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

public class T151 {
    public static void main(String[] args) {
        new SolutionT151().reverseWords(" asdasd df f");

    }
}
class SolutionT151 {
    public String reverseWords(String s) {
        Stack<String>stack=new Stack<>();
        int flag=1;
        int begin=0;
        for (int i=0;i<s.length();i++){
            if (s.charAt(i)==' '&&flag==1){
                continue;
            }
            if ((s.charAt(i)!=' '&&s.length()-1==i&&flag==1)){
                stack.push(s.substring(i,i+1));
                continue;
            }
            if (s.charAt(i)!=' '&&flag==1){
                flag=0;
                begin=i;
                continue;
            }
            if ((s.charAt(i)!=' '&&s.length()-1==i)&&flag==0){
                stack.push(s.substring(begin,i+1));
                begin=i;
                flag=1;
                continue;
            }
            if (s.charAt(i)==' '&&flag==0){
                stack.push(s.substring(begin,i));
                begin=i;
                flag=1;
                continue;
            }

        }
        String ret=new String();
        while (!stack.empty()){
            if (stack.size()!=1){
                ret+=stack.pop()+" ";
            }else {
                ret+=stack.pop();
            }

        }
        return ret;
    }
}
